草庐IT

flutter的异步操作 future、async、await

全部标签

javascript - 为什么我必须将 async 关键字放在具有 await 关键字的函数中?

我只想等待一个进程完成,不想让函数异步。请看下面的代码。我必须使getUserList异步,因为函数中有一个await关键字。因此,我还必须编写类似“awaitUsersService.getUserList”的代码来执行该方法,而且我还必须使父函数异步。那不是我想做的。importxrfrom'xr'//apackageforhttprequestsclassUsersService{staticasyncgetUserList(){constres=awaitxr.get('http://localhost/api/users')returnres.data}}exportdefa

javascript - 控制 javascript 异步流的速率(在循环中)

假设您想用一段短代码为列表中的每个文件夹启动一个(随机)进程:varexec=require('child_process').exec;varfolders=[...];//alistfromsomewhere_.each(folders,function(folder){exec("tarcvf"+folder+".tgz"+folder);});如果列表很长,我可能会同时运行大量进程,这是要避免的。以受控速率(此处最多5个并发进程)运行执行的相当简单的方法是什么?编辑:该问题适用于各种异步流(您希望在其中控制速率),而不仅仅是文件夹执行问题。 最佳答案

javascript - ES 2017 : async function vs AsyncFunction(object) vs async function expression

我刚刚阅读了有关asyncfunctions的内容,并发现了ES2017的一些类似功能。它造成了很多困惑,我只想问:asyncfunction、AsyncFunction(用于创建异步函数)和异步函数表达式(我认为这只是另一个异步函数)?什么时候应该使用一种格式而不是另一种格式?我们将不胜感激对每个怪癖和表现的强调! 最佳答案 在Javascript中有四种创建函数的方法。在Javascript中也有四种创建异步函数的方法,它们是彼此精确的镜像。为了演示这是如何工作的,我使用了一个简单的sleep函数,全局声明:functionsl

javascript - 返回 Promise<void> 的异步函数是否在 block 末尾有隐式返回?

publicasyncdemo():Promise{//Dosomestuffhere//Doingmorestuff//...//Endofblockwithoutreturn;}是新的Promise在TypeScript/ES6的block末尾隐式返回?bool类型的例子:classTest{publicasynctest():Promise{returntrue;}publicmain():void{this.test().then((data:boolean)=>{console.log(data);});}}newTest().main();这会打印出true到控制台,因为r

javascript - 在构造函数中调用异步函数。

getUser是一个异步函数?如果需要更长的时间来解决?它是否总是会在我的someotherclass中返回正确的值。classIdpServer{constructor(){this._settings={//someidentityserversettings.};this.userManager=newUserManager(this._settings);this.getUser();}asyncgetUser(){this.user=awaitthis.userManager.getUser();}isLoggedIn(){returnthis.user!=null&&!th

javascript - 异步/等待的环回支持

我正在使用loopback3构建REST服务,我想使用async/await而不是必须使用回调。所以不要这样做:MyModel.myFunction=(callback)=>{MyModel.find({where:{id:2}},(e,data)=>{if(e)returncallback(e);callback(null,data);});};我非常愿意这样做:MyModel.myFunction=async(callback)=>{try{constdata=awaitMyModel.find({where:{id:2}});callback(null,data);}catch(

javascript - 如何链接异步/等待使用依赖于第一次调用的数据

假设我有一个async/await调用一个获取所有用户的API。asyncfunctiongetUsers(){constusers=awaitApi.getAllUsers()returnusers.map(user=>{return{id:user.id,group:'datadependsonsubsequentAPIcall',}})}在返回映射中,我必须执行另一个API调用以获取一些应该在同一范围内的数据。constgroupByUser=Api.getGroupByUserId()我该如何实现?我可以在现有的中放置一个异步/等待吗?我是否创建一个包含所有用户ID的数组并以某

javascript - 为什么 `async`和 `await`关键字可以赋值?

这个问题在这里已经有了答案:Whyareawaitandasyncvalidvariablenames?(1个回答)关闭2年前。我注意到async关键字可以被赋予任何值,甚至可以用作普通变量:letasync="world";console.log(async)console.log("Hello"+async)然而,即便如此,它仍然像以前一样运行:letasync="world";asyncfunctionfoo(input){returninput;}letbarPromise=foo("bar");console.log("barpromiseis:",typeofbarProm

javascript - 使用键盘快捷键打开浏览器操作的弹出窗口

我正在开发带有浏览器操作弹出窗口的GoogleChrome扩展程序。当用户单击该图标时,会出现弹出窗口。有没有办法用CTRL+之类的键盘快捷键打开这个弹出窗口? 最佳答案 您需要向您的manifest.json添加一个"commands"对象,如https://developer.chrome.com/extensions/commands所示。.如果您的扩展程序的弹出窗口是“browser_action”弹出窗口(由manifest.json中的“browser_action”键表示),您需要“_execute_browser_a

javascript - 让 twitter bootstrap btn-group 像带下拉菜单的分组导航栏一样操作

我一直在尝试让带有下拉菜单的TwitterBootstrapbtn-group为具有下拉菜单的多个按钮工作。例子:12345还有我的尝试:http://jsfiddle.net/x2BGB/这会显示一个按钮组。我希望该组中的某些按钮具有下拉菜单。我想要实现的一个例子是:注意:当一个按钮与另一个按钮相邻时,分组按钮“栏”不应该有圆Angular。(右侧)。 最佳答案 我创建了一个btn-toolbar2类来避免冲突并覆盖btn-toolbar默认行为。下拉菜单必须在它们自己的btn组中。DashboardButton1ActionAn